iT邦幫忙

2024 iThome 鐵人賽

DAY 14
0
生成式 AI

用AI寫程式也是要點本事的系列 第 14

如何讓程式知道何時text to speech播放完了

  • 分享至 

  • xImage
  •  

「如何讓程式知道何時text to speech播放完了?」

首先,前面簡單講解介面的程式碼的技術概念時,有提到一種情況是「寫一段程式碼,但不自己決定它在程式中何時會運行,而是被動的等待程式呼叫這段程式碼。」

這裡的情形也很類似。「寫一段程式碼,但不自己決定它在程式中何時會運行,而是等text to speech播放完了執行。」

(仔細聽,程式設計師們經常在討論這類的事情。「你呼叫我的程式碼的時間不對!」「我呼叫了你的程式碼就掛掉了!」...好吧!這不叫討論,這叫顛三倒四的互相撕吼。)


  html.SpeechSynthesis? _synthesis;
  html.SpeechSynthesisUtterance? _utterance;

  TtsRecorder() {
    _synthesis = html.window.speechSynthesis;
    _utterance = html.SpeechSynthesisUtterance();
  }

  Future<void> speakAndRecord(String text) async {
    // Start recording
    await _recorder.startRecording();

    // Speak the text
    _utterance!.text = text;
    _utterance!.onend = (event) {
       // Stop recording when the speech synthesis has finished
       _recorder.stopRecording();
    };
    _synthesis!.speak(_utterance!);


  }

對了,為了這個功能,我將語音功能搬移到「TtsRecorder」的物件內。

下面這段程式碼是用來「偵測何時結束」的功能。

    _utterance!.onend = (event) {
       // Stop recording when the speech synthesis has finished
       _recorder.stopRecording();
    };

這看起來很像函數,但又好像不是....
怎麼解釋它已經超越了我的pay grade了!我又不想複製貼上!所以...啊!然後這段程式碼不能執行....為什麼?下一篇再看看了!


上一篇
用物件導向整合前幾天的功能
下一篇
如果不能等通知,那就監視它吧!
系列文
用AI寫程式也是要點本事的30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言